package com.xziying.appstore.plugIn;

import com.xziying.appstore.api.ApiInteractive;
import com.xziying.appstore.plugIn.domain.EventInfo;
import com.xziying.appstore.plugIn.domain.PlugInInfo;

/**
 * ProtocolEntry 插件协议入口接口
 *
 * @author : xziying
 * @create : 2021-01-25 16:50
 */
public interface ProtocolEntry {

    /**
     * 获取插件内的HTML资源 包括html css js等
     */
    byte[] getConfigHTML(String url);

    /**
     * 返回插件信息
     */
    PlugInInfo getInfo();

    /**
     * 处理事件
     *  robotVersion 来着框架版本 1 ER框架
     *  fromQQ 来源机器人QQ
     *  messageType   接收到消息类型，该类型可在常量表中查询具体定义，此处仅列举： -1 未定义事件 0,在线状态临时会话 1,好友信息 2,群信息 3,讨论组信息 4,群临时会话 5,讨论组临时会话 6,财付通转账 7,好友验证回复会话
     *  messageSubtype 此参数在不同ER_下，有不同的定义，暂定：接收财付通转账时 1待确认收款 0为已收款    有人请求入群时，不良成员这里为1
     *  source    此消息的来源，如：群号、讨论组ID、临时会话QQ、好友QQ等
     *  triggerActive 主动发送这条消息的QQ，踢人时为踢人管理员QQ
     *  triggerPassive    被动触发的QQ，如某人被踢出群，则此参数为被踢出人QQ
     *  message   此参数有多重含义，常见为：对方发送的消息内容，但当ER_消息类型为 某人申请入群，则为入群申请理由,当消息类型为财付通转账时为 原始json
     *  args  保留参数位
     * @return 处理结果 0继续 1拦截
     */
    int eventHandling(
            EventInfo eventInfo
    );
}
